package HomeWork;
/*服务端要求：

1. 使用多线程以及线程池的方式，来侦听客户端请求；
   1. 如果有客户发出请求，则主动给每位客户端发送一句“欢迎光临！请上传文件(文本文件)！”；
   2. 用户上传后，将文件保存在本地，并回复“上传成功”；
   3. 如果客户端上传的文件中有敏感词汇，则替换成**，再保存。
   4. 敏感词汇：操
*/

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException {
        //服务端
        ServerSocket ss = new ServerSocket(10113);
        //监听
        Socket s = ss.accept();
        PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
        pw.write("欢迎光临！请上传文件(文本文件)！");

        //接受客服端数据   InputStreamReader字节流到字符流转化    现在是字节流，读文本类型用字符方便，要转换
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        //写入到服务端本地   OutputStreamWriter转化
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Day16:\\")));
        String str;
        while ((str=br.readLine())!=null){
            str.replace("操","**");
            bw.write(str);
            bw.flush();
            bw.newLine();
        }

        PrintWriter pw2 = new PrintWriter(s.getOutputStream(),true);
        pw2.write("上传成功");

        pw2.close();
        bw.close();
        br.close();
        //ss.close();
    }
}
